/**
 * @author : zzr
 * @description :学习java数据结构的前置知识
 * @date :2024_12_29
 */

/**
 * 写一个泛型类，实现一个方法，这个方法是求指定类型数组的最大值
 */
//class Alg<T> {
//    public T getMax(T[] array) {
//        T max = array[0];
//        for (int i = 0; i < array.length; i++) {
//            if(array[i] > max) { //err 两个Object类型不能比较大小
//                max = array[i];
//            }
//        }
//        return max;
//    }
//}

    //T extends Comparable<T> 表示T一定是实现Comparable接口的
class Alg<T extends Comparable<T>> {
    public T getMax(T[] array) {
        T max = array[0];
        for (int i = 0; i < array.length; i++) {
            if(array[i].compareTo(max) > 0) {
                max = array[i];
            }
        }
        return max;
    }
}

class A {

}
class B implements Comparable<B> {

    @Override
    public int compareTo(B o) {
        return 0;
    }
}
public class Test {
    Alg<Integer> alg1 = new Alg<>(); //right
    Alg<String> alg2 = new Alg<>(); //right
//    Alg<A> alg3 = new Alg<A>(); //err
    Alg<B> alg4 = new Alg<>(); //right
}

